#pragma once
#include "enemy.h"
#include "../SGD Wrappers/CSGD_TextureManager.h"
#include "../SGD Wrappers/CSGD_Direct3D.h"
#include "../SGD Wrappers/CSGD_DirectInput.h"
#include "../SGD Wrappers/CSGD_XAudio2.h"
#include "../SGD Wrappers/SGD_String.h"
#include "MessageSystem.h"

class CFlyingEnemy : public CEnemy
{
public:
	CFlyingEnemy(void);
	~CFlyingEnemy(void);

//Inherited from CEntity///////////////////////////////
	virtual void Update	(float fElapsedTime);
	virtual void Render	(void);
	virtual RECT GetRect(void) const;
	virtual bool CheckCollision( IEntity* pOther );
///////////////////////////////////////////////////////

	//SGD Wrappers
	CSGD_Direct3D*			m_pD3D;
	CSGD_DirectInput*		m_pDI;
	CSGD_XAudio2*			m_pXA;
	CSGD_TextureManager*	m_pTM;
	CMessageSystem*			m_pMS;

	//Inherited from CEnemy
	virtual void HandleEvent(CNEvent* pEvent);
	//Getters & Setters
	void SetHealth	(int nHealth){ m_nHealth = nHealth; }
	bool GetFacing	(void){ return m_bFaceing; }
	void SetFacing	(bool face){ m_bFaceing=face; }

protected:
	//variables
	bool		m_bFaceing;
	float		m_fTimer;
	int			m_nHealth;
	float		m_fShootTimer;
	int			m_nEnemyShotSfxID;
	float		m_fMovementTimer;
	float		m_fWaypoint01;
	float		m_fWaypoint02;
	float		m_fWaypoint03;
	bool		WP1;
	bool		WP2;
	bool		WP3;
};

